package cn.iocoder.yudao.module.dbit.service.schinfo;

import java.util.*;
import javax.validation.*;

import cn.iocoder.yudao.module.dbit.controller.admin.majinfo.vo.MajInfoRespVO;
import cn.iocoder.yudao.module.dbit.controller.admin.schinfo.vo.*;
import cn.iocoder.yudao.module.dbit.dal.dataobject.majinfo.MajInfoDO;
import cn.iocoder.yudao.module.dbit.dal.dataobject.schinfo.SchInfoDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;

/**
 * 共建学校 Service 接口
 *
 * @author 芋道源码
 */
public interface SchInfoService {

    /**
     * 创建共建学校
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Integer createSchInfo(@Valid SchInfoSaveReqVO createReqVO);

    /**
     * 更新共建学校
     *
     * @param updateReqVO 更新信息
     */
    void updateSchInfo(@Valid SchInfoSaveReqVO updateReqVO);

    /**
     * 删除共建学校
     *
     * @param id 编号
     */
    void deleteSchInfo(Integer id);

    /**
     * 获得共建学校
     *
     * @param id 编号
     * @return 共建学校
     */
    SchInfoDO getSchInfo(Integer id);

    /**
     * 获得共建学校分页
     *
     * @param pageReqVO 分页查询
     * @return 共建学校分页
     */
    PageResult<SchInfoDO> getSchInfoPage(SchInfoPageReqVO pageReqVO);


    /**
     * 获取所有共建学校学校
     *
     * @return
     */
    List<SchInfoDO> getSchInfoList();


    /**
     * 根据共建id获取该院校下面的所有的共建专业
     * @param schId
     * @return
     */
    List<MajInfoRespVO> getMajorList(Integer schId);
}